package com.qinggeng.project.system.service;

import com.qinggeng.project.api.dto.GoodsEvaluateDto;
import com.qinggeng.project.api.dto.UserEvaluateDto;
import com.qinggeng.project.system.domain.Orders;
import com.qinggeng.project.system.domain.OrdersEvaluate;

import java.util.List;

/**
 * 订单评价Service接口
 *
 * @author qinggeng
 * @date 2020-06-19
 */
public interface IOrdersEvaluateService
{
    /**
     * 查询订单评价
     *
     * @param ordersEvaluateId 订单评价ID
     * @return 订单评价
     */
    public OrdersEvaluate selectOrdersEvaluateById(Long ordersEvaluateId);

    /**
     * 查询订单评价列表
     *
     * @param ordersEvaluate 订单评价
     * @return 订单评价集合
     */
    public List<OrdersEvaluate> selectOrdersEvaluateList(OrdersEvaluate ordersEvaluate);

    /**
     * 新增订单评价
     *
     * @param ordersEvaluate 订单评价
     * @return 结果
     */
    public int insertOrdersEvaluate(OrdersEvaluate ordersEvaluate);

    /**
     * 修改订单评价
     *
     * @param ordersEvaluate 订单评价
     * @return 结果
     */
    public int updateOrdersEvaluate(OrdersEvaluate ordersEvaluate);

    /**
     * 批量删除订单评价
     *
     * @param ordersEvaluateIds 需要删除的订单评价ID
     * @return 结果
     */
    public int deleteOrdersEvaluateByIds(Long[] ordersEvaluateIds);

    /**
     * 删除订单评价信息
     *
     * @param ordersEvaluateId 订单评价ID
     * @return 结果
     */
    public int deleteOrdersEvaluateById(Long ordersEvaluateId);

    /**
     * 商品评价列表信息
     * @param where
     * @return
     */
    List<GoodsEvaluateDto> selectOrdersEvaluateGoodsDtoList(OrdersEvaluate where);

    /**
     * 用户评价列表信息
     * @param where
     * @return
     */
    List<UserEvaluateDto> selectOrdersEvaluateUserDtoList(OrdersEvaluate where);

    /**
     * 添加评价
     *
     * @param userId
     * @param evaluateDesc
     * @param evaluateImgs
     * @param goodsQuality
     */
    void addEvaluate(Long ordersGoodsId, Long shopId,Long userId, String evaluateDesc, String evaluateImgs, Integer goodsQuality,String delFlag);


    /**
     * 批量评价
     * @param orders
     */
    void addEvaluate(Orders orders);
}
